#/bin/bash

# Etapa de construcción del sistema.

function agregarArchivo()
{
	local variableAmbiente="LISTA_$1"
	local archivo="$2"

	local configFile="$CONFDIR/InstalaW5.conf"
	fecha=`date +"%d/%m/%Y %H:%M"`
	chmod +w $configFile
	lista=`grep "^$variableAmbiente=" $configFile | cut -d= -f2`
	if [ "$lista" != "" ]; then
		lista=$lista' '
	fi
	sed "/^$variableAmbiente=/d" -i $configFile
	echo "$variableAmbiente=$lista$archivo=$USER=$fecha" >> $configFile
	chmod -w $configFile
}

# Copia el script $origen bajo el nombre y ruta $destino, y le da $permisos correspondientes. Además se agrega al archivo al config file como instalado en el directorio de la variable $ambiente
function instalarArchivo()
{
	local origen=$1
	local destino=$2
	local permisos=$3
	local ambiente=$4 
	if [ ! -e "$destino" ]; then
		echo "Construyendo $destino"
		cp "$origen" "$destino"
		chmod $permisos "$destino"
	else
		echo "Ignorando archivo existente: $destino"
	fi
	agregarArchivo "$ambiente" "${destino##*/}"
}

dirActual=$PWD
path=`readlink -f $0 | sed 's-/[^/]*$--'`
cd $path

# Cargamos la configuración
configFile='InstalaW5.conf'
source $configFile'.temp'

# Construcción de directorios
echo 'Creando Estructuras de directorio. . . .'
mkdir -p $CONFDIR
mkdir -p $BINDIR
mkdir -p $MAEDIR
mkdir -p $ARRIDIR
mkdir -p $ACEPDIR
mkdir -p $RECHDIR
mkdir -p $PROCDIR
mkdir -p $REPODIR

# Generar archivo de configuración
echo 'Actualizando la configuración del sistema'
fecha=`date +"%d/%m/%Y %H:%M"`
if [ -e "$CONFDIR/$configFile" ]; then
	rm -f "$CONFDIR$configFile"
fi
sed 's-^.*$-&='"$USER=$fecha"'-' $configFile'.temp' > "$CONFDIR$configFile"
rm -f $configFile'.temp'
chmod 444 "$CONFDIR$configFile"
agregarArchivo CONFDIR $configFile

#cod_error file
directorioSrc="./CONFDIR"
archivo="cod_err"
instalarArchivo "$directorioSrc/$archivo" "$CONFDIR$archivo" 444 CONFDIR

echo 'Instalando Archivos Maestros'

# sistemas-MAEDIR
archivo="sistemas"
instalarArchivo "./MAEDIR/$archivo" "$MAEDIR$archivo" 444 MAEDIR

# patrones-MAEDIR
archivo="patrones"
instalarArchivo "./MAEDIR/$archivo" "$MAEDIR$archivo" 444 MAEDIR

echo 'Instalando Programas y Funciones'

# IniciarW5
directorioSrc="./BINDIR"
archivo="IniciarW5.sh"
instalarArchivo "$directorioSrc/$archivo" "$BINDIR$archivo" 544 BINDIR

archivo=".path$configFile"
if [ ! -e "$BINDIR$archivo" ]; then
	echo "$CONFDIR$configFile" > "$BINDIR$archivo"
	chmod 444 "$BINDIR$archivo"
fi
agregarArchivo BINDIR $archivo


archivo="leerConfig.sh"
instalarArchivo "$directorioSrc/$archivo" "$BINDIR$archivo" 544 BINDIR

archivo="setConfigVar.sh"
instalarArchivo "$directorioSrc/$archivo" "$BINDIR$archivo" 544 BINDIR

# Logger
archivo="LoguearW5.pl"
instalarArchivo "$directorioSrc/$archivo" "$BINDIR$archivo" 544 BINDIR

# DetectaW5
archivo="detectaW5.sh"
instalarArchivo "$directorioSrc/$archivo" "$BINDIR$archivo" 544 BINDIR

# BuscarW5
archivo="buscarW5.sh"
instalarArchivo "$directorioSrc/$archivo" "$BINDIR$archivo" 544 BINDIR

# moverW5
archivo="moverW5.sh"
instalarArchivo "$directorioSrc/$archivo" "$BINDIR$archivo" 544 BINDIR

# startD
archivo="startD.sh"
instalarArchivo "$directorioSrc/$archivo" "$BINDIR$archivo" 544 BINDIR

# stopD
archivo="stopD.sh"
instalarArchivo "$directorioSrc/$archivo" "$BINDIR$archivo" 544 BINDIR

# ListarW5
archivo="ListarW5.pl"
instalarArchivo "$directorioSrc/$archivo" "$BINDIR$archivo" 544 BINDIR

# mirarW5
archivo="MirarW5.pl"
instalarArchivo "$directorioSrc/$archivo" "$BINDIR$archivo" 544 BINDIR

echo 'Instalacion concluida'
cd $dirActual
exit 0
